py: Move to guarded includes, everywhere in py/ core.

Addresses issue #1022.
diff --git a/py/builtin.h b/py/builtin.h
index 70f1633..14dc273 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -23,6 +23,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
+#ifndef __MICROPY_INCLUDED_PY_BUILTIN_H__
+#define __MICROPY_INCLUDED_PY_BUILTIN_H__
+
+#include "py/obj.h"
 
 mp_obj_t mp_builtin___import__(mp_uint_t n_args, const mp_obj_t *args);
 mp_obj_t mp_builtin_open(mp_uint_t n_args, const mp_obj_t *args, mp_map_t *kwargs);
@@ -101,3 +105,5 @@
 extern const mp_obj_module_t mp_module_uheapq;
 extern const mp_obj_module_t mp_module_uhashlib;
 extern const mp_obj_module_t mp_module_ubinascii;
+
+#endif // __MICROPY_INCLUDED_PY_BUILTIN_H__